为了给毕设中的关键数据备份,本地笔记本A通过VPN可以连接到实验室的跳板机B,从跳板机B可以跳到存储mongo数据库所在机器C。现在想要把C主机数据库中几个集合的数据传到笔记本A,并且在本地重建mongo数据库。
- 远程数据库的mongo db目录如下,想要传输的数据为每个库中的analysis集合
show dbs;
admin 0.000GB
config 0.000GB
cuckoo_nfs_db 19.361GB
cuckoo_nfs_db2 6.897GB
cuckoo_nfs_db3 54.200GB
cuckoo_nfs_db4 2014.692GB
cuckoo_nfs_db5 2116.398GB
cuckoo_nfs_db6 38.097GB
cuckoo_nfs_db7 143.612GB - 步骤:
- 把数据库C里的数据存储到跳板机B上的文件
- 把跳板机B上的文件传到本地笔记本A
- 在本地笔记本A根据传来的文件,重建mongo数据库
涉及命令记录
从远程数据库中读取数据存储为本地文件:
1mongodump -h 远程数据库IP -d 远程数据库名 -c 远程数据库中的集合名 -o 本地某个文件夹路径(path_x)从本地读取文件恢复mongo数据库
1mongorestore -h localhost:27017 -d 即将存入的本地数据库名称 本地数据文件夹路径(path_x)scp传输文件夹内所有内容
1scp -r ivic@192.168.105.222:/home/ivic/mongo_data_copy_0710/cuckoo_nfs_db_copy /home/LAB/tangmy/tmy_trans
迁移结果
查看本地mongo,发现要迁移的几个表都在对应的数据库里了。迁移后的数据库名称不需要和远程数据库中的名称一致,因为我们是基于文件来作为传输中介的。每个数据库中的数据保存下来之后,其实是json和bson文件。
例如:
|
|
show dbs;
admin 0.000GB
config 0.000GB
cuckoo_nfs_db_copy 0.095GB
cuckoo_nfs_db_copy2 0.019GB
cuckoo_nfs_db_copy3 0.278GB
cuckoo_nfs_db_copy4 4.829GB
cuckoo_nfs_db_copy5 4.802GB
cuckoo_nfs_db_copy6 0.117GB
cuckoo_nfs_db_copy7 0.351GB